package cn.chendd.api.service;

import cn.chendd.api.po.UploadParam;
import cn.chendd.api.vo.ComplexVo;
import feign.Response;
import org.springframework.web.multipart.MultipartFile;

import java.awt.*;
import java.util.List;
import java.util.Map;

/**
 * Open Feign 接口定义
 *
 * @author chendd
 * @date 2023/1/8 20:36
 */
public interface OpenFeignService {

    /**
     * 获取数据列表
     * @return 数据列表
     */
    List<Point> getList();

    /**
     * 获取复杂数据对象
     * @return 复杂数据对象
     */
    ComplexVo getComplex();

    /**
     * Hello world
     * @param name 名称
     * @return hello world
     */
    String sayHello(String name);

    /**
     * Hello world
     * @param name 参数名
     * @param value 参数值
     * @param author header参数值
     * @return hello 多个参数
     */
    String sayHello(String name , String value , String author);

    /**
     * 传递参数包含body和普通参数
     * @param name 普通参数
     * @param body body参数
     * @return 字符串
     */
    String paramBody(String name , String body);

    /**
     * 下载yaml文件
     * @return response
     */
    Response downloadYaml();

    /**
     * 下载图片文件
     * @return response
     */
    Response downloadImage();

    /**
     * 文件上传
     * @param files 多文件
     * @param param 其它参数
     * @return 上传文件操作结果
     */
    Map<String , Object> upload(List<MultipartFile> files , UploadParam param);

}
